<?php
namespace app\admin\controller;
use think\facade\Db;
use \think\facade\View;
use \think\facade\Request;
//控制器类文件
class Index
{
    public function index()
    {
        //访问 pathinfo模式
        //访问：根目录 public
        //单应用
        //http://tp31.com/index.php/Index/index
        //       域名    / 入口文件 /控制器/操作方法
        //多应用  下载扩展
        //http://tp31.com/index.php/index/demo/index
        //       域名    / 入口文件 / 应用/控制器/操作方法
        //调试模式  .env  APP_DEBUG


        //渲染视图
        //return \think\facade\View::fetch();
        //return View::fetch('demo');

        //return View::fetch('demo/index');
        //模板表达式               [应用@][控制器/][方法]
        return View::fetch('index@demo/index');
    }

    public function demo()
    {

        //【URL生成】
        //【Route路由类】命名空间 think\facade
            //参数：buildUrl（‘地址表达式’，‘地址栏参数’）
            //suffix('伪静态后缀')
            //domain('域名')
        //【举例】 \think\facade\Route::buildUrl(‘地址表达式’，‘地址栏参数’)->suffix('伪静态后缀')->domain('域名');
            //echo \think\facade\Route::buildUrl();                 //生成URLl链接 /index.php/index/Index/demo.html
            //echo \think\facade\Route::buildUrl('c');              //生成URLl链接  /index.php/index/Index/c.html
            //echo \think\facade\Route::buildUrl('b/c');            //生成URLl链接  /index.php/index/b/c.html
            //echo \think\facade\Route::buildUrl('a/b/c');          //生成URLl链接  /index.php/a/b/c.html
            //echo \think\facade\Route::buildUrl('',['id'=>1,'name'=>'lipingwei']);   //生成地址栏参数 index.php/index/Index/demo.html?id=1
            //echo \think\facade\Route::buildUrl()->domain('www');      //域名        http://www.tp31.com/index.php/index/Index/demo.html
            //echo \think\facade\Route::buildUrl()->suffix('www');      //伪静态后缀   /index.php/index/Index/demo.www
        //【助手函数 url】
            //echo url('a/b/c',['id'=>1])->domain('www')->suffix('www');
            //echo url('a/b/c',['id'=>1],'php','www');                  //http://www.tp31.com/index.php/a/b/c.php?id=1
        //【模板赋值】
        //标量赋值
            //$name = '李平伟';
            //View::assign('string',$name);
        //一维数组赋值
            //$arr1 = [
            //    'name' => '李平伟',
            //    'sex'  => '男'
            //];
            //View::assign('arr1',$arr1);
        //二维数组
            //$arr2 = [
            //    [
            //        'name' => '李平伟1',
            //        'sex'  => '男1'
            //    ],
            //    [
            //        'name' => '李平伟2',
            //        'sex'  => '男2'
            //    ]
            //];
            //View::assign('arr2',$arr2);
        //对象赋值
            //$obj = new \stdClass();
            //$obj->name = '李平伟3';
            //$obj->sex  = '男';
            //View::assign('obj',$obj);
        //批量赋值1
            //$arr3 = [
            //    'name' => '李平伟',
            //    'sex'  => '男'
            //];
            //View::assign($arr3);
        //批量赋值 2
        //return view('',$arr3);
        //【循环标签】
        // for foreach volist
        //volist
        // name     循环数据源
        // id       循环变量
        // $key     索引
        // key      计数值
        // mod      范围循环计数
        // offset   起始位置
        // length   长度
        // empty    空值时输出的内容
        //foreach
        // name     循环数据源
        // item     循环变量
        // key      索引
        // empty    空值时输出的内容
        //for
        //        $list = [
        //            [
        //                'id' => 1,
        //                'name' => '张三',
        //            ],
        //            [
        //                'id' => 2,
        //                'name' => '李四',
        //            ],
        //            [
        //                'id' => 3,
        //                'name' => '王五',
        //            ],
        //            [
        //                'id' => 4,
        //                'name' => '张三',
        //            ],
        //            [
        //                'id' => 5,
        //                'name' => '李四',
        //            ],
        //            [
        //                'id' => 6,
        //                'name' => '王五',
        //            ],
        //            [
        //                'id' => 7,
        //                'name' => '张三',
        //            ],
        //            [
        //                'id' => 8,
        //                'name' => '李四',
        //            ],
        //            [
        //                'id' => 9,
        //                'name' => '王五',
        //            ],
        //];
        //View::assign('list',$list);
        //return view();
        //【比较标签】
            //eq neq gt egt lt elt heq nheq
                //{比较标签 name="变量" value="值"}
                    //内容
                //{else /}
                    //内容
                //{/比较标签}
            //$num = 1;
            //$num1 = 1;
            //View::assign('num',$num);
            //View::assign('num1',$num1);
            //return view();
        //【判断标签】
            //【SWITCH】
            //【if】
            //【in  notin  between  notbetween】
            //【present notpresent】【empty notempty】
            //【defined】
        //$num = '';
        //View::assign('num',$num);
        //return view();

        ////【使用函数】
        //$str = time();
        //View::assign('str',$str);
        //return view();


        //【三元运算】

        $str = 1;
        View::assign('str',$str);
        return view();




























    }

    public function getInfo()
    {
        //【请求类】 Request
        //【接参】  【get post param file  all】
                //$id   = \think\facade\Request::get('id');
                //$name = \think\facade\Request::post('name');
            // param 可以接get post pathinfo
                //echo $id   = \think\facade\Request::param('id');
                //$img   = \think\facade\Request::file('img');
            //助手函数  input('get.');
                //接全部get方式值
                //$get   = \think\facade\Request::get();
            //参数（'变量名/变量修饰','默认值','过滤函数'）     变量修饰：s  d  b  a  f
                //$id   = \think\facade\Request::param('id/b','默认值','strip_tags,htmlspecialchars,htmlentities,stripslashes');
        //【信息】
            //Request::host();
            //Request::url();
            //Request::method();
            //
            //Request::controller();
            //Request::action();
            //app('http')->getName();
        //【判断】
            //Request::isPost();
            //Request::isGet();
            //Request::isMobile();
        //return view();

        //【连接数据库】
        $res = \think\facade\Db::table('ecm_user')->select();
        $res = \think\facade\Db::name('user')->select();
        //$res->toArray();
        View::assign('list',$res);
        
        return view();
    }

    public function getUser()
    {
        //【Db查询】
        //【查询一条数据】// find  select
            //$info = Db::table('ecm_user')->find(1);                               //返回一维数组
            //$info = Db::table('ecm_user')->where('id','=','1')->find();           //返回一维数组
        //【查询所有数据】
            //$info = Db::table('ecm_user')->select();                              //返回结果集对象
            //$arr = $info->toArray();                                              //结果集转成数组
        //【查询指定字段】
            //$name = Db::table('ecm_user')->where('id','=','1')->value('uname');   //返回字段值
            //$name = Db::table('ecm_user')->column('uname');                       //返回字段一列值

        //【数组条件查询】
            //$keywords = '唐';
            //$sex = 1;
            //$where = [];
            //if ($keywords <> '')                $where[] = ['uname','like','%'.$keywords.'%'];
            //if (isset($sex) && $sex <> '')      $where[] = ['sex','=',$sex];
            //$list = Db::name('user')
            //    ->where($where)
            //    ->select();

        //【链式操作】
        //[table] 参数 表全名 name（去表前缀）
            //Db::table('ecm_user')->select();
            //Db::table('ecm_user a')->select();            //表别名
            //Db::table(['ecm_user'=>'a'])->select();       //表别名
        //[alias] 表别名
            //Db::table('ecm_user')->alias('a')->select();
        //[order] 排序
            //Db::table('ecm_user')->order('id','desc')->select();
            //Db::table('ecm_user')->order('id desc')->select();
            //Db::table('ecm_user')->order(['id'=>'desc'])->select();
            //$res = Db::table('ecm_user')->orderRand()->select();
            //$res = Db::table('ecm_user')->orderRaw('rand(id)')->select();
        //[join*] 连表
            //$list = Db::name('user')
            //    ->alias('u')
            //    //->join('ecm_order o','u.id = o.uid','left')
            //    //->leftJoin('ecm_order o','u.id = o.uid')
            //    ->join('order o','u.id = o.uid','left')
            //    ->join(['order'=>'o'],'u.id = o.uid','left')
            //    ->select();
        //[field*] 查询字段
            //$list = Db::name('user')->field('id,uname')->select();                    //字符串参数
            //$list = Db::name('user')->field(['id','uname'])->select();                //数组参数
            //$list = Db::name('user')->field('id ids,uname name')->select();           //字段起别名
            //$list = Db::name('user')->field(['id'=>'ids','uname'=>'name'])->select(); //字段起别名
            //$list = Db::name('user')->field(true)->select();                          //显示查询
            //$list = Db::name('user')->withoutField('id,uname')->select();             //排除字段
            //$list = Db::name('user')->field('upper(md5(id)) id,uname')->select();     //使用函数
        //[where*] 表达式查询
            // 参数（字段，表达式，条件）
            //【比较符（= 、 <> 、 > 、 >= 、 < 、<=）】
            //$info = Db::table('ecm_user')->where('id','>=','1')->select();
            //【模糊搜索（like/notlike）】
            //$info = Db::table('ecm_user')->where('uname','like','%唐%')->select();
            //【范围查询（in/notin/between/notbetween）】
            //$info = Db::table('ecm_user')->where('id','notin','1,2,3')->select();
            //$info = Db::table('ecm_user')->where('id','notbetween','1,3')->select();
            //【null/notnull】
            //$info = Db::table('ecm_user')->where('openid','not null')->select();
            //【exp】
            //$info = Db::table('ecm_user')->where('id','exp','in(1,2,3)')->select();
            //【EXISTS/NOTEXISTS】  闭包
            //$info = Db::table('ecm_user')->whereExists(function ($q){
            //    $q->table('ecm_user')->where('id','=',1);
            //})->select();
            //【时间查询(between time,> time,>= time,< time,<= time)】
            //$info = Db::table('ecm_user')->where('addtime','between time',['2000-1-1','2021-1-1'])->select();
            //$info = Db::table('ecm_user')->where('addtime','> time','2000-1-1')->select();
            //【find in set】
            //$info = Db::table('ecm_user')->where('head_img','find in set','3')->select();
        //[limit/page]
            //$list = Db::name('user')->limit(2)->select();
            //$list = Db::name('user')->limit(2,2)->select();
            //$list = Db::name('user')->page(2)->select();
            //$list = Db::name('user')->page(2,2)->select();
            //$list = Db::name('user')->limit(1)->page(3)->select();
        //[group/having]
            //$list = Db::name('user')
            //    ->field('count(id) number,sex')
            //    ->group('sex')
            //    ->having('count(id)>1')
            //    ->select();

    }

    public function heightWhere()
    {
        //【聚合查询】
            //$str = Db::name('user')->count();
            //$max = Db::name('user')->max('addtime');
            //$min = Db::name('user')->min('addtime');
            //$avg = Db::name('user')->avg('id');
            //$sum = Db::name('user')->sum('id');
        //【快捷查询】 （相同查询条件时使用）  | 等于 or     & 等于 and
            //$res = Db::table('ecm_user')
            //    ->where('uname|nickname','like','%悟%')
            //    ->where('uname&nickname','like','%悟%')
            //    ->find();
        //【闭包查询】
            //$res = Db::name('brand')
            //    ->where(function ($q){
            //        $q->whereOr('brand_logo','=','')
            //        ->whereOr('brand_logo',null);
            //    })
            //    ->where('if_show',0)
            //    ->select();
        //【快捷方式】
            //$res = Db::name('user')
            //    ->whereLike('uname','%唐%')
            //    ->select();
            //Db::table('ecm_user')
            //    ->whereColumn('openid','>','sex')
            //    ->select();
        //【动态查询】
            //where表达式查询简化
            //$str = Db::name('user')
            //    ->whereUname('唐僧')
            //    ->find();
            //$str = Db::name('user')
            //    ->where('Uname','=','唐僧')
            //    ->select();
            //[返回查询的一条数据]
            //$str = Db::name('user')
            //    ->getByUname('唐僧');
            //[返回字段值]
            //$str = Db::name('user')
            //->getFieldByUname('唐僧','nickname');
        //【子查询】
            //生成sql语句
            //$sql = Db::name('user')->fetchSql(true)->select();
            //buildSql构建子查询   【作为表名】
            //$sql = Db::name('user')->where('id','>',1)->buildSql(true);
            //$res = Db::table($sql.' u')->where('id','<',5)->select();
            //闭包构建子查询        【作为条件】
            //$res = Db::name('user')
            //    ->where('id','in',function ($q){
            //        $q->table('ecm_user')->where('id','>',2)->field('id');
            //    })
            //    ->select();
        //【分页查询】
            //$list = Db::name('user')->paginate([
            //    'list_rows' => 1,
            //    'page'      => 2,
            //    'query'     => [
            //        'id'       => 1,
            //        'keywords' => '一'
            //    ]
            //]);
            //View::assign('list',$list);
            //return view();
    }


















}
